//
//  UIImage+Extension.swift
//  WHWeiBo01
//
//  Created by whitcast on 16/7/16.
//  Copyright © 2016年 itcast. All rights reserved.
//

import UIKit

extension UIImage {
    /**
        //  截取屏幕快照
     
     - returns: 返回截取image
     */
    class func getScreenShot() -> UIImage {
     
     
        //  获取主window
        let window = UIApplication.sharedApplication().keyWindow!
        // 开启图片上下文
        //  截取的不是高清图片
        UIGraphicsBeginImageContext(window.size)
        // scale 0 表示屏幕的真是分辨率, 其他数字表示  数字*点的大小
        //UIGraphicsBeginImageContextWithOptions(window.size, false, 0)
        
        //  把window内容渲染到图片上下文中 -Hierarchy层次的意思,性能要比drawRect要高
        window.drawViewHierarchyInRect(window.bounds, afterScreenUpdates: false)
        //  从上下文中获取图片
        let image = UIGraphicsGetImageFromCurrentImageContext()
        
        
        // 关闭图片上下文
        UIGraphicsEndImageContext()
        return image
    }
    /**
     根据指定压缩后的宽度,压缩图片
     
     - parameter width: 压缩的宽度
     - parameter image: 需要压缩的图片
     
     - returns:   压缩后的图片
     */
    func scaleImageWithScaleWidth(scaleWidth: CGFloat) -> UIImage {
            
        //  根据压缩后的宽度计算压缩后的高度
        let scaleHeight = scaleWidth / self.size.width * self.size.height
        
        //  压缩后的大小
        let size = CGSize(width: scaleWidth, height: scaleHeight)
        //  开启上下文
        UIGraphicsBeginImageContext(size)
        
        //  把图片渲染到指定范围内
        self.drawInRect(CGRect(origin: CGPointZero, size: size))
        //  获取上下文中压缩后的图片
        let scaleImage = UIGraphicsGetImageFromCurrentImageContext()
        
        //  关闭上下文
        UIGraphicsEndImageContext()
        
        return scaleImage
            
        
    }
    
    
    
    

}
